package org.hamster.multidropbox.main.utils
{
	import org.hamster.common.services.ConfigService;
	import org.hamster.multidropbox.dropbox.model.DropboxClientListProxy;
	import org.hamster.multidropbox.dropbox.model.DropboxClientProxy;
	import org.hamster.multidropbox.dropbox.model.DropboxLinkFoldersProxy;
	import org.hamster.multidropbox.dropbox.model.DropboxStorageProxy;
	import org.hamster.multidropbox.main.mediator.AppLoadingMaskMediator;
	import org.hamster.multidropbox.main.mediator.AppMediator;
	import org.hamster.multidropbox.main.model.AppInitProxy;
	import org.hamster.multidropbox.main.vo.AppConfigVO;
	import org.hamster.multidropbox.mainView.model.MainViewFileProxy;
	import org.puremvc.as3.interfaces.IFacade;

	public class PureMVCHelper
	{
		public static var facade:IFacade;
		
		public function PureMVCHelper()
		{
		}
		
		public static function get appInitProxy():AppInitProxy
		{
			return facade.retrieveProxy(AppInitProxy.NAME) as AppInitProxy;
		}
		
		public static function get appMediator():AppMediator
		{
			return facade.retrieveMediator(AppMediator.NAME) as AppMediator;
		}
		
		public static function get dropboxClientProxy():DropboxClientProxy
		{
			return facade.retrieveProxy(DropboxClientProxy.NAME) as DropboxClientProxy;
		}
		
		public static function get dropboxClientListProxy():DropboxClientListProxy
		{
			return facade.retrieveProxy(DropboxClientListProxy.NAME) as DropboxClientListProxy;
		}
		
		public static function get dropboxStorageProxy():DropboxStorageProxy
		{
			return facade.retrieveProxy(DropboxStorageProxy.NAME) as DropboxStorageProxy;
		}
		
		public static function get configVO():AppConfigVO
		{
			return ConfigService.instance.configVO as AppConfigVO;
		}
		
		public static function get mainViewFileProxy():MainViewFileProxy
		{
			return facade.retrieveProxy(MainViewFileProxy.NAME) as MainViewFileProxy;
		}
		
		public static function get appLoadingMaskMediator():AppLoadingMaskMediator
		{
			return facade.retrieveMediator(AppLoadingMaskMediator.NAME) as AppLoadingMaskMediator;
		}
		
		public static function get dropboxLinkFoldersProxy():DropboxLinkFoldersProxy
		{
			return facade.retrieveProxy(DropboxLinkFoldersProxy.NAME) as DropboxLinkFoldersProxy;
		}

	}
}